<?php
require_once(FWK_EXCEPTION."CustonException.class.php");
require_once(BIB_ACTIVE_RECORD);
require_once(FWK_MODEL."AbsModelDao.class.php");
require_once(FWK_MODEL."Upload.class.php");
require_once(FWK_UTIL."FormataDatas.class.php");
/**
 * Classe modelo para a estrutura da sessão do noticia que estiver logado
 *
 * @author André Coura <andreccls@gmail.com>
 * @since 1.0 - 07/06/2012
 */
class Comentario extends AbsModelDao{

	public $_table = "blog_comentario";

	public $_id = "id_comentario";

	public function getListaComentarios(){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, site_comentario,
							desc_comentario, data_alteracao, id_usuario
					 FROM 
					 		".$this->_table;
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}

	/**
	 * Busca dos comentarios para a Home
	 * De Acordo com a tala, são apenas 4 comentarios que irão aparecer.
	 */
	public function getComentarios(){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, site_comentario,
							desc_comentario, data_alteracao, id_usuario 
					 FROM 
					 		".$this->_table."
					 WHERE
					 	status_comentario = 'S'";
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}

	public function getComentario($id){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, id_post, site_comentario,
							desc_comentario, data_alteracao, id_usuario 
					 FROM 
					 		".$this->_table."
					 WHERE
					 	id_comentario = '".$id."'";
		$arrRet = ControlDB::getRow($strQuery,3);
		return $arrRet;
	}

	/**
	 * Busca comentario específico
	 */
	public function getComentariosByPost($idPost){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, id_post, site_comentario,
							desc_comentario, data_alteracao, id_usuario 
					 FROM 
					 		".$this->_table."
					 WHERE
					 	id_post = '".$idPost."' ";
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}


	public function getComentAprovadosByPost($idPost){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, id_post, site_comentario,
							desc_comentario, data_alteracao, id_usuario 
					 FROM 
					 		".$this->_table."
					 WHERE
					 	status_comentario = 'A' AND id_post = '".$idPost."' ";
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}


	public function getListaComentariosPaginada($iniPost=0, $numComentarios=10){
		$strQuery = "SELECT
							id_comentario, nome_comentario, email_comentario,
							status_comentario, data_comentario, site_comentario,
							desc_comentario, data_alteracao, id_usuario
					 FROM 
					 		".$this->_table."
					 WHERE
					 	status_comentario = 'S'
					 LIMIT
					 	".$iniPost.",".$numComentarios."";
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}

	public function getNumRegsByPost($idPost){
		$strQuery = "SELECT
							count(id_comentario)
					 FROM 
					 		".$this->_table."
					 WHERE
					 	status_comentario = 'S' 
					 	AND id_post = '".$idPost."'";

		$arrRet = ControlDB::getRow($strQuery,3);
		return (int)$arrRet[0];
	}

	public function alterar($id=null,$post,$file){
		try{
			self::salvaPostAutoUtf8($post);
			$this->id_comentario = $id;
			$arrDados = parent::buscaCampos($id);
			if($arrDados["data_comentario"] == null)
				$this->data_comentario = date("Y-m-d");
			else 
				$this->data_comentario = $arrDados["data_comentario"];
				
			//campos default para todos os daos (historico de edição de arquivos)
			$this->data_alteracao = date("Y-m-d H:i:s");
			$this->id_usuario = parent::getUsuarioSessao()->getIdUsuario();
			self::replace();
			if(self::ErrorMsg()){
				print("<pre>");
				print_r($post);
				die("<br/><br /><h1>".self::ErrorMsg()."</h1>");
			}
		}catch(DaoException $e){
			throw new CustonException($e->getMensagem());
		}
	}


	public function setStatus($id,$status){
		try{
			$arrDados = parent::buscaCampos($id);
			$this->id_comentario = $id;
			self::salvaPostAutoUtf8($arrDados, false);
			$this->status_comentario = $status;
			if($arrDados["data_comentario"] == null)
				$this->data_comentario = date("Y-m-d");
			else 
				$this->data_comentario = $arrDados["data_comentario"];
			self::replace();
			if(self::ErrorMsg()){
				print("<pre>");
				print_r($arrDados);
				die("<br/><br /><h1>".self::ErrorMsg()."</h1>");
			}
		}catch(DaoException $e){
			throw new CustonException($e->getMensagem());
		}
	}

}
?>